本地模块


Node.js提供工具npm工具构建本地模块 , 例如C/C++扩展 .

版本0.14以及之后版本 , 可以使用node-gyp或者npm构建本地模块 .

Linux以及OSX系统能够直接加载本地模块 . Windows系统中 , 需要将文件%APPDATA%\npm\node_modules\node-gyp\src\win_delay_load_hook.c替换为https://github.com/nwjs/nw.js/blob/nw13/tools/win_delay_load_hook.c

版本0.13之前 , V8引擎以及NW.js中的Node APIs不同于官方的Node.js . NW.js使用本地Node.js模块需要使用以下工具重新构建 . 版本0.15开始 , 使用以下工具还需要V8引擎中ABI变化 .

nw-gyp

nw-gyp支持NW.js指定头文件以及库 .

功能与node-gyp工具相同 , 除了需要手动指定版本以及支持位数 .

npm install -g nw-gyp
cd myaddon
nw-gyp rebuild --target=0.13.0 --arch=x64

参考https://github.com/nwjs/nw-gyp .

node-pre-gyp

部分包使用node-pre-gyp支持通过使用node-gyp或者nw-gyp构建Node.js和NW.js .

The usage of node-pre-gyp is as following:

npm install -g node-pre-gyp
cd myaddon
node-pre-gyp build --runtime=node-webkit --target=0.13.0 --target_arch=x64

参考https://github.com/mapbox/node-pre-gyp

已知问题

目前 , 本地模块需要使用以上工具重新构建 , 包括依赖的模块 . 构建本地模块过程中 , 可以使用building.gyp查找到所有本地模块 .